package com.atguigu.gmall.realtime.util;

import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;

/**
 * @Author lizhenchao@atguigu.cn
 * @Date 2021/3/19 16:49
 */
public class MyThreadPoolUtil {
    public static ThreadPoolExecutor getThreadPool() {
        /*
        参数1:线程池中最小的线程数, 即使是idle也会有.
        参数2:线程池能够提供的最大线程数
        参数3:线程池内的线程存活的时间.
        参数4: 单位
        参数5: 超过线程池能力的时候, 提交的线程会暂存到这个阻塞队列中
         */
        return new ThreadPoolExecutor(2,
                                      100,
                                      300,
                                      TimeUnit.SECONDS,
                                      new LinkedBlockingDeque<Runnable>(100));
    }
}
